package com.punch.course.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.punch.common.vo.course.StuCourseVO;
import com.punch.common.vo.order.StudentCourseClassVO;
import com.punch.course.model.StudentCourseSchedule;

import java.time.LocalDate;
import java.util.List;

/**
 * 学生上课课表服务层
 */
public interface StudentCourseScheduleService extends IService<StudentCourseSchedule> {


    /**
     * 学生上课课程列表
     *
     * @param studentId 学生id
     * @return StuCourseVO
     */
    StuCourseVO listStuCourse(Long studentId);

    /**
     * 查找当天学生id参加课程列表
     *
     * @param schoolId  学校id
     * @param stuIdList 学生id列表
     * @param now       当前时间
     * @return List<StudentCourseSchedule>
     */
    List<StudentCourseSchedule> listStuByStuIds(Long schoolId, List<Long> stuIdList, LocalDate now);

    /**
     * 保存学生课表
     *
     * @param classId              课程id
     * @param studentCourseClassVO 学生信息
     * @return long
     */
    Long saveStudentCourseSchedule(Long classId, StudentCourseClassVO studentCourseClassVO);

    /**
     * 获取学生当前学期出勤率
     *
     * @param studentId 学生id
     * @param areaId    地区id,用于查询学期
     * @return double
     */
    Double attendanceRate(Long studentId, Integer areaId);
}
